// CodeGear C++Builder
// Copyright (c) 1995, 2015 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'ocv.imgproc_c.pas' rev: 30.00 (Windows)

#ifndef Ocv_Imgproc_cHPP
#define Ocv_Imgproc_cHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <ocv.core.types_c.hpp>
#include <ocv.imgproc.types_c.hpp>

//-- user supplied -----------------------------------------------------------

namespace Ocv
{
namespace Imgproc_c
{
//-- forward type declarations -----------------------------------------------
struct TCvContourInfo;
struct TCvContourScanner;
//-- type declarations -------------------------------------------------------
typedef TCvContourInfo *pCvContourInfo;

struct DECLSPEC_DRECORD TCvContourInfo
{
public:
	int flags;
	TCvContourInfo *next;
	TCvContourInfo *parent;
	Ocv::Core::Types_c::TCvSeq *contour;
	Ocv::Core::Types_c::TCvRect rect;
	Ocv::Core::Types_c::TCvPoint origin;
	int is_hole;
};


typedef TCvContourScanner *pCvContourScanner;

struct DECLSPEC_DRECORD TCvContourScanner
{
public:
	Ocv::Core::Types_c::TCvMemStorage *storage1;
	Ocv::Core::Types_c::TCvMemStorage *storage2;
	Ocv::Core::Types_c::TCvSet *cinfo_set;
	Ocv::Core::Types_c::TCvMemStoragePos initial_pos;
	Ocv::Core::Types_c::TCvMemStoragePos backup_pos;
	Ocv::Core::Types_c::TCvMemStoragePos backup_pos2;
	System::Byte *img0;
	System::Byte *img;
	int img_step;
	Ocv::Core::Types_c::TCvSize img_size;
	Ocv::Core::Types_c::TCvPoint offset;
	Ocv::Core::Types_c::TCvPoint pt;
	Ocv::Core::Types_c::TCvPoint lnbd;
	int nbd;
	TCvContourInfo *l_cinfo;
	TCvContourInfo cinfo_temp;
	TCvContourInfo frame_info;
	Ocv::Core::Types_c::TCvSeq frame;
	int approx_method1;
	int approx_method2;
	int mode;
	int subst_flag;
	int seq_type1;
	int header_size1;
	int elem_size1;
	int seq_type2;
	int header_size2;
	int elem_size2;
	System::StaticArray<pCvContourInfo, 128> cinfo_table;
};


typedef System::StaticArray<Ocv::Core::Types_c::TCvPoint2D32f, 4> TBoxPoints;

//-- var, const, procedure ---------------------------------------------------
static const System::Int8 CV_RETR_EXTERNAL = System::Int8(0x0);
static const System::Int8 CV_RETR_LIST = System::Int8(0x1);
static const System::Int8 CV_RETR_CCOMP = System::Int8(0x2);
static const System::Int8 CV_RETR_TREE = System::Int8(0x3);
static const System::Int8 CV_CHAIN_CODE = System::Int8(0x0);
static const System::Int8 CV_CHAIN_APPROX_NONE = System::Int8(0x1);
static const System::Int8 CV_CHAIN_APPROX_SIMPLE = System::Int8(0x2);
static const System::Int8 CV_CHAIN_APPROX_TC89_L1 = System::Int8(0x3);
static const System::Int8 CV_CHAIN_APPROX_TC89_KCOS = System::Int8(0x4);
static const System::Int8 CV_LINK_RUNS = System::Int8(0x5);
extern "C" void __cdecl cvCvtColor(const void * src, void * dst, int code)/* overload */;
extern "C" void __cdecl cvCvtColor(const Ocv::Core::Types_c::pCvMat src, Ocv::Core::Types_c::pCvMat dst, int code)/* overload */;
extern "C" double __cdecl cvThreshold(const void * src, const void * dst, double threshold, double max_value, int threshold_type);
extern "C" void __cdecl cvSmooth(const void * src, void * dst, int smoothtype = 0x2, int size1 = 0x3, int size2 = 0x0, double sigma1 = 0.000000E+00, double sigma2 = 0.000000E+00);
extern "C" void __cdecl cvResize(const void * src, void * dst, int interpolation = 0x1);
extern "C" Ocv::Core::Types_c::pIplConvKernel __cdecl cvCreateStructuringElementEx(int cols, int rows, int anchor_x, int anchor_y, int shape, System::PInteger values = (System::PInteger)(0x0));
extern "C" void __cdecl cvErode(const void * src, void * dst, Ocv::Core::Types_c::pIplConvKernel element = (Ocv::Core::Types_c::pIplConvKernel)(0x0), int iterations = 0x1);
extern "C" void __cdecl cvDilate(const void * src, void * dst, Ocv::Core::Types_c::pIplConvKernel element = (Ocv::Core::Types_c::pIplConvKernel)(0x0), int iterations = 0x1);
extern "C" void __cdecl cvReleaseStructuringElement(Ocv::Core::Types_c::pIplConvKernel &element);
extern "C" void __cdecl cvMorphologyEx(const void * src, void * dst, void * temp, Ocv::Core::Types_c::pIplConvKernel element, int operation, int iterations = 0x1);
extern "C" void __cdecl cvFloodFill(void * image, const Ocv::Core::Types_c::TCvPoint seed_point, const Ocv::Core::Types_c::TCvScalar new_val, const Ocv::Core::Types_c::TCvScalar lo_diff, const Ocv::Core::Types_c::TCvScalar up_diff, Ocv::Imgproc::Types_c::pCvConnectedComp comp = (Ocv::Imgproc::Types_c::pCvConnectedComp)(0x0), int flags = 0x4, void * mask = (void *)(0x0));
extern "C" void __cdecl cvAdaptiveThreshold(const void * src, void * dst, double max_value, int adaptive_method = 0x0, int threshold_type = 0x0, int block_size = 0x3, double param1 = 5.000000E+00);
extern "C" void __cdecl cvCopyMakeBorder(const void * src, void * dst, const Ocv::Core::Types_c::TCvPoint offset, int bordertype, const Ocv::Core::Types_c::TCvScalar value);
extern "C" void __cdecl cvSobel(const void * src, void * dst, int xorder, int yorder, int aperture_size = 0x3);
extern "C" void __cdecl cvLaplace(const void * src, void * dst, int aperture_size = 0x3);
extern "C" void __cdecl cvCanny(const void * image, void * edges, double threshold1, double threshold2, int aperture_size = 0x3);
extern "C" Ocv::Core::Types_c::pCvSeq __cdecl cvHoughLines2(void * image, void * line_storage, int method, double rho, double theta, int threshold, double param1 = 0.000000E+00, double param2 = 0.000000E+00);
extern "C" Ocv::Core::Types_c::pCvSeq __cdecl cvHoughCircles(void * image, void * circle_storage, int method, double dp, double min_dist, double param1 = 1.000000E+02, double param2 = 1.000000E+02, int min_radius = 0x0, int max_radius = 0x0);
extern "C" void __cdecl cvIntegral(const void * image, void * sum, void * sqsum = (void *)(0x0), void * tilted_sum = (void *)(0x0));
extern "C" int __cdecl cvFindContours(void * image, Ocv::Core::Types_c::pCvMemStorage storage, Ocv::Core::Types_c::pCvSeq first_contour, int header_size, int mode, int method, const Ocv::Core::Types_c::TCvPoint offset);
extern "C" Ocv::Core::Types_c::pCvSeq __cdecl cvApproxPoly(const Ocv::Core::Types_c::pCvSeq src_seq, int header_size, Ocv::Core::Types_c::pCvMemStorage storage, int method, double eps, int recursive = 0x0);
extern "C" void __cdecl cvEqualizeHist(const void * src, const void * dst);
extern "C" void __cdecl cvFindCornerSubPix(const void * image, Ocv::Core::Types_c::pCvPoint2D32f corners, int count, const Ocv::Core::Types_c::TCvSize win, const Ocv::Core::Types_c::TCvSize zero_zone, const Ocv::Core::Types_c::TCvTermCriteria criteria);
extern "C" void __cdecl cvInitUndistortMap(const Ocv::Core::Types_c::pCvMat camera_matrix, const Ocv::Core::Types_c::pCvMat distortion_coeffs, void * mapx, void * mapy);
extern "C" void __cdecl cvRemap(const void * src, void * dst, const void * mapx, const void * mapy, int flags, const Ocv::Core::Types_c::TCvScalar fillval);
extern "C" double __cdecl cvArcLength(const void * curve, const Ocv::Core::Types_c::TCvSlice slice, int is_closed);
extern DELPHI_PACKAGE double __fastcall cvContourPerimeter(const void * contour);
extern "C" double __cdecl cvMatchShapes(const void * object1, const void * object2, int method, double parameter = 0.000000E+00);
extern "C" Ocv::Core::Types_c::pCvMat __cdecl cv2DRotationMatrix(const Ocv::Core::Types_c::TCvPoint2D32f center, double angle, double scale, Ocv::Core::Types_c::pCvMat map_matrix);
extern "C" void __cdecl cvWarpAffine(const void * src, void * dst, const Ocv::Core::Types_c::pCvMat map_matrix, int flags, const Ocv::Core::Types_c::TCvScalar fillval);
extern "C" Ocv::Core::Types_c::pCvMat __cdecl cvGetPerspectiveTransform(const Ocv::Core::Types_c::pCvPoint2D32f src, const Ocv::Core::Types_c::pCvPoint2D32f dst, Ocv::Core::Types_c::pCvMat map_matrix);
extern "C" void __cdecl cvWarpPerspective(const void * src, void * dst, const Ocv::Core::Types_c::pCvMat map_matrix, int flags, const Ocv::Core::Types_c::TCvScalar fillval);
extern "C" Ocv::Core::Types_c::TCvRect __cdecl cvBoundingRect(void * points, int update = 0x0);
extern "C" double __cdecl cvContourArea(const void * contour, const Ocv::Core::Types_c::TCvSlice slice, int oriented = 0x0);
extern "C" Ocv::Core::Types_c::pCvSeq __cdecl cvConvexHull2(const Ocv::Core::Types_c::pCvSeq input, void * hull_storage = (void *)(0x0), int orientation = 0x1, int return_points = 0x0);
extern "C" Ocv::Core::Types_c::pCvSeq __cdecl cvConvexityDefects(Ocv::Core::Types_c::pCvSeq contour, Ocv::Core::Types_c::pCvSeq convexhull, Ocv::Core::Types_c::pCvMemStorage storage = (Ocv::Core::Types_c::pCvMemStorage)(0x0));
extern "C" void __cdecl cvPyrDown(const void * src, void * dst, int filter = 0x7);
extern "C" void __cdecl cvPyrUp(const void * src, void * dst, int filter = 0x7);
extern "C" int __cdecl cvCheckContourConvexity(const Ocv::Core::Types_c::pCvSeq contour);
extern "C" Ocv::Core::Types_c::pCvHistogram __cdecl cvCreateHist(int dims, System::PInteger sizes, int _type, void * ranges = (void *)(0x0), int uniform = 0x1);
extern DELPHI_PACKAGE void __fastcall cvCalcHist(void * &image, Ocv::Core::Types_c::pCvHistogram hist, int accumulate = 0x0, const void * mask = (void *)(0x0))/* overload */;
extern DELPHI_PACKAGE void __fastcall cvCalcHist(Ocv::Core::Types_c::pIplImage &image, Ocv::Core::Types_c::pCvHistogram hist, int accumulate = 0x0, const void * mask = (void *)(0x0))/* overload */;
extern DELPHI_PACKAGE void __fastcall cvCalcHist(Ocv::Core::Types_c::pCvMat &image, Ocv::Core::Types_c::pCvHistogram hist, int accumulate = 0x0, const void * mask = (void *)(0x0))/* overload */;
extern "C" void __cdecl cvGetMinMaxHistValue(const Ocv::Core::Types_c::pCvHistogram hist, System::PSingle min_value, System::PSingle max_value, System::PInteger min_idx = (System::PInteger)(0x0), System::PInteger max_idx = (System::PInteger)(0x0));
extern "C" void __cdecl cvCalcArrHist(void * &arr, Ocv::Core::Types_c::pCvHistogram hist, int accumulate = 0x0, const void * mask = (void *)(0x0))/* overload */;
extern "C" void __cdecl cvCalcArrHist(Ocv::Core::Types_c::pIplImage &arr, Ocv::Core::Types_c::pCvHistogram hist, int accumulate = 0x0, const Ocv::Core::Types_c::pIplImage mask = (Ocv::Core::Types_c::pIplImage)(0x0))/* overload */;
extern "C" void __cdecl cvCalcArrHist(Ocv::Core::Types_c::pCvMat &arr, Ocv::Core::Types_c::pCvHistogram hist, int accumulate = 0x0, const Ocv::Core::Types_c::pCvMat mask = (Ocv::Core::Types_c::pCvMat)(0x0))/* overload */;
extern "C" void __cdecl cvCalcArrBackProject(void * &image, void * dst, const Ocv::Core::Types_c::pCvHistogram hist);
extern "C" void __cdecl cvCalcBackProject(Ocv::Core::Types_c::pIplImage &image, void * dst, const Ocv::Core::Types_c::pCvHistogram hist)/* overload */;
extern "C" void __cdecl cvCalcBackProject(void * &image, void * dst, const Ocv::Core::Types_c::pCvHistogram hist)/* overload */;
extern "C" void __cdecl cvGoodFeaturesToTrack(const void * image, void * eig_image, void * temp_image, Ocv::Core::Types_c::pCvPoint2D32f corners, System::PInteger corner_count, double quality_level, double min_distance, const void * mask = (void *)(0x0), int block_size = 0x3, int use_harris = 0x0, double k = 4.000000E-02);
extern "C" Ocv::Core::Types_c::TCvBox2D __cdecl cvMinAreaRect2(void * points, Ocv::Core::Types_c::pCvMemStorage storage = (Ocv::Core::Types_c::pCvMemStorage)(0x0));
extern "C" int __cdecl cvMinEnclosingCircle(void * points, Ocv::Core::Types_c::pCvPoint2D32f center, System::PSingle radius);
extern "C" void __cdecl cvBoxPoints(const Ocv::Core::Types_c::TCvBox2D box, const TBoxPoints &pt);
extern "C" void __cdecl cvLogPolar(const void * src, void * dst, const Ocv::Core::Types_c::TCvPoint2D32f center, double M, int flags = 0x9);
extern "C" void __cdecl cvLinearPolar(const void * src, void * dst, const Ocv::Core::Types_c::TCvPoint2D32f center, double maxRadius, int flags = 0x9);
extern "C" void __cdecl cvReleaseHist(Ocv::Core::Types_c::pCvHistogram &hist);
extern "C" void __cdecl cvClearHist(Ocv::Core::Types_c::pCvHistogram hist);
extern "C" void __cdecl cvMoments(const void * arr, Ocv::Imgproc::Types_c::pCvMoments moments, int binary = 0x0);
extern "C" double __cdecl cvGetSpatialMoment(Ocv::Imgproc::Types_c::pCvMoments moments, int x_order, int y_order);
extern "C" void __cdecl cvMatchTemplate(const void * image, const void * templ, void * result, int method);
extern "C" double __cdecl cvGetCentralMoment(Ocv::Imgproc::Types_c::pCvMoments moments, int x_order, int y_order);
extern "C" void __cdecl cvUndistort2(const void * src, void * dst, const void * camera_matrix, const void * distortion_coeffs, const void * new_camera_matrix = (void *)(0x0));
extern "C" Ocv::Core::Types_c::pCvMat __cdecl cvGetAffineTransform(const Ocv::Core::Types_c::pCvPoint2D32f src, const Ocv::Core::Types_c::pCvPoint2D32f dst, Ocv::Core::Types_c::pCvMat map_matrix);
extern "C" void __cdecl cvUndistortPoints(const Ocv::Core::Types_c::pCvMat src, Ocv::Core::Types_c::pCvMat dst, const Ocv::Core::Types_c::pCvMat camera_matrix, const Ocv::Core::Types_c::pCvMat dist_coeffs, const Ocv::Core::Types_c::pCvMat R = (Ocv::Core::Types_c::pCvMat)(0x0), const Ocv::Core::Types_c::pCvMat P = (Ocv::Core::Types_c::pCvMat)(0x0));
extern "C" pCvContourScanner __cdecl cvStartFindContours(void * image, Ocv::Core::Types_c::pCvMemStorage storage, int header_size, int mode, int method, const Ocv::Core::Types_c::TCvPoint offset);
extern "C" Ocv::Core::Types_c::pCvSeq __cdecl cvFindNextContour(pCvContourScanner scanner);
extern "C" void __cdecl cvSubstituteContour(pCvContourScanner scanner, Ocv::Core::Types_c::pCvSeq new_contour);
extern "C" Ocv::Core::Types_c::pCvSeq __cdecl cvEndFindContours(pCvContourScanner &scanner);
extern "C" double __cdecl cvCompareHist(Ocv::Core::Types_c::pCvHistogram hist1, Ocv::Core::Types_c::pCvHistogram hist2, int method);
extern "C" void __cdecl cvAcc(const void * image, void * sum, const void * mask = (void *)(0x0));
extern "C" void __cdecl cvSquareAcc(const void * image, void * sqsum, const void * mask = (void *)(0x0));
extern "C" void __cdecl cvMultiplyAcc(const void * image1, const void * image2, void * acc, const void * mask = (void *)(0x0));
extern "C" void __cdecl cvRunningAvg(const void * image, void * acc, double alpha, const void * mask = (void *)(0x0));
extern "C" void __cdecl cvFilter2D(const void * src, void * dst, const Ocv::Core::Types_c::pCvMat kernel, const Ocv::Core::Types_c::TCvPoint anchor)/* overload */;
extern DELPHI_PACKAGE void __fastcall cvFilter2D(const void * src, void * dst, const Ocv::Core::Types_c::pCvMat kernel)/* overload */;
extern "C" Ocv::Core::Types_c::ppCvMat __cdecl cvCreatePyramid(const void * img, int extra_layers, double rate, const Ocv::Core::Types_c::pCvSize layer_sizes = (Ocv::Core::Types_c::pCvSize)(0x0), void * bufarr = (void *)(0x0), int calc = 0x1, int filter = 0x7);
extern "C" void __cdecl cvReleasePyramid(Ocv::Core::Types_c::ppCvMat &pyramid, int extra_layers);
extern "C" void __cdecl cvPyrMeanShiftFiltering(const void * src, void * dst, double sp, double sr, int max_level, const Ocv::Core::Types_c::TCvTermCriteria termcrit);
extern "C" void __cdecl cvWatershed(const void * image, void * markers);
extern "C" void __cdecl cvConvertMaps(const void * mapx, const void * mapy, void * mapxy, void * mapalpha);
extern "C" void __cdecl cvInitUndistortRectifyMap(const Ocv::Core::Types_c::pCvMat camera_matrix, const Ocv::Core::Types_c::pCvMat dist_coeffs, const Ocv::Core::Types_c::pCvMat R, const Ocv::Core::Types_c::pCvMat new_camera_matrix, void * mapx, void * mapy);
extern "C" double __cdecl cvGetNormalizedCentralMoment(Ocv::Imgproc::Types_c::pCvMoments moments, int x_order, int y_order);
extern "C" void __cdecl cvGetHuMoments(Ocv::Imgproc::Types_c::pCvMoments moments, Ocv::Imgproc::Types_c::pCvHuMoments hu_moments);
extern "C" int __cdecl cvSampleLine(const void * image, const Ocv::Core::Types_c::TCvPoint pt1, const Ocv::Core::Types_c::TCvPoint pt2, void * buffer, int connectivity = 0x8);
extern "C" void __cdecl cvGetRectSubPix(const void * src, void * dst, const Ocv::Core::Types_c::TCvPoint2D32f center);
extern "C" void __cdecl cvGetQuadrangleSubPix(const void * src, void * dst, const Ocv::Core::Types_c::pCvMat map_matrix);
extern "C" float __cdecl cvCalcEMD2(const void * signature1, const void * signature2, int distance_type, Ocv::Imgproc::Types_c::TCvDistanceFunction distance_func = 0x0, const void * cost_matrix = (void *)(0x0), void * flow = (void *)(0x0), Ocv::Core::Types_c::pFloat lower_bound = (Ocv::Core::Types_c::pFloat)(0x0), void * userdata = (void *)(0x0));
extern "C" Ocv::Core::Types_c::pCvSeq __cdecl cvApproxChains(Ocv::Core::Types_c::pCvSeq src_seq, Ocv::Core::Types_c::pCvMemStorage storage, int method = 0x2, double parameter = 0.000000E+00, int minimal_perimeter = 0x0, int recursive = 0x0);
extern "C" void __cdecl cvStartReadChainPoints(Ocv::Core::Types_c::pCvChain chain, Ocv::Imgproc::Types_c::pCvChainPtReader reader);
extern "C" Ocv::Core::Types_c::TCvPoint __cdecl cvReadChainPoint(Ocv::Imgproc::Types_c::pCvChainPtReader reader);
extern "C" Ocv::Core::Types_c::TCvBox2D __cdecl cvFitEllipse2(const void * points);
extern "C" Ocv::Core::Types_c::TCvRect __cdecl cvMaxRect(const Ocv::Core::Types_c::pCvRect rect1, const Ocv::Core::Types_c::pCvRect rect2);
extern "C" Ocv::Core::Types_c::pCvSeq __cdecl cvPointSeqFromMat(int seq_kind, const void * mat, Ocv::Core::Types_c::pCvContour contour_header, Ocv::Core::Types_c::pCvSeqBlock block);
extern "C" double __cdecl cvPointPolygonTest(const void * contour, const Ocv::Core::Types_c::TCvPoint2D32f pt, int measure_dist);
extern "C" void __cdecl cvSetHistBinRanges(Ocv::Core::Types_c::pCvHistogram hist, System::PSingle ranges, int uniform = 0x1);
extern "C" Ocv::Core::Types_c::pCvHistogram __cdecl cvMakeHistHeaderForArray(int dims, System::PInteger sizes, Ocv::Core::Types_c::pCvHistogram hist, Ocv::Core::Types_c::pFloat data, Ocv::Core::Types_c::ppFloat ranges = (Ocv::Core::Types_c::ppFloat)(0x0), int uniform = 0x1);
extern "C" void __cdecl cvNormalizeHist(Ocv::Core::Types_c::pCvHistogram hist, double factor);
extern "C" void __cdecl cvThreshHist(Ocv::Core::Types_c::pCvHistogram hist, double threshold);
extern "C" void __cdecl cvCopyHist(const Ocv::Core::Types_c::pCvHistogram src, Ocv::Core::Types_c::pCvHistogram &dst);
extern "C" void __cdecl cvCalcBayesianProb(Ocv::Core::Types_c::pCvHistogram &src, int number, Ocv::Core::Types_c::pCvHistogram &dst);
extern "C" void __cdecl cvCalcProbDensity(const Ocv::Core::Types_c::pCvHistogram hist1, const Ocv::Core::Types_c::pCvHistogram hist2, Ocv::Core::Types_c::pCvHistogram dst_hist, double scale = 2.550000E+02);
extern "C" void __cdecl cvDistTransform(const void * src, void * dst, int distance_type = 0x2, int mask_size = 0x3, const Ocv::Core::Types_c::pFloat mask = (Ocv::Core::Types_c::pFloat)(0x0), void * labels = (void *)(0x0), int labelType = 0x0);
extern "C" void __cdecl cvPreCornerDetect(const void * image, void * corners, int aperture_size = 0x3);
extern "C" void __cdecl cvCornerEigenValsAndVecs(const void * image, void * eigenvv, int block_size, int aperture_size = 0x3);
extern "C" void __cdecl cvCornerMinEigenVal(const void * image, void * eigenval, int block_size, int aperture_size = 0x3);
extern "C" void __cdecl cvCornerHarris(const void * image, void * harris_response, int block_size, int aperture_size = 0x3, double k = 4.000000E-02);
extern "C" void __cdecl cvFitLine(const void * points, int dist_type, double param, double reps, double aeps, float &line);
}	/* namespace Imgproc_c */
}	/* namespace Ocv */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_OCV_IMGPROC_C)
using namespace Ocv::Imgproc_c;
#endif
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_OCV)
using namespace Ocv;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// Ocv_Imgproc_cHPP
